﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EAEcoreAddin.SQLWrapperClasses
{
    /*
     *Created by Alexander Schleich
     *for EMoflon:
     *http://www.moflon.org/emoflon/
     */
    class EAParameter : EA.Parameter
    {

        String xmlParameterString;
        SQLRepository repository;
        public EAParameter(SQLRepository repository, String xmlParameterString)
        {
            this.repository = repository;
            this.xmlParameterString = xmlParameterString;
        }

        #region IDualParameter Members

        public string Alias
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string ClassifierID
        {
            get
            {
                return (EAEcoreAddin.Util.EAUtil.getXMLNodeContentFromSQLQueryString(xmlParameterString, "Classifier")[0]);
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Default
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string GetLastError()
        {
            throw new NotImplementedException();
        }

        public bool IsConst
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Kind
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Name
        {
            get
            {
                return EAEcoreAddin.Util.EAUtil.getXMLNodeContentFromSQLQueryString(xmlParameterString, "Name")[0];
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Notes
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public EA.ObjectType ObjectType
        {
            get { throw new NotImplementedException(); }
        }

        public int OperationID
        {
            get 
            {
                String parent = EAEcoreAddin.Util.EAUtil.getXMLNodeContentFromSQLQueryString(xmlParameterString, "OperationID")[0];
                return int.Parse(parent);
            
            }
        }

        public string ParameterGUID
        {
            get
            {
                return EAEcoreAddin.Util.EAUtil.getXMLNodeContentFromSQLQueryString(xmlParameterString, "ea_guid")[0];
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public int Position
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Stereotype
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string StereotypeEx
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Style
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string StyleEx
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public EA.Collection TaggedValues
        {
            get { throw new NotImplementedException(); }
        }

        public string Type
        {
            get
            {
                return EAEcoreAddin.Util.EAUtil.getXMLNodeContentFromSQLQueryString(xmlParameterString, "Type")[0];
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool Update()
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
